package com.itheima.service;

import com.itheima.pojo.History;
import com.itheima.pojo.PageBean;
import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface UserService {
    /**
     * 根据查询用户名和密码查询用户对象
     * @param username
     * @param password
     * @return
     */
    User select(String username, String password);

    /**
     * 根据用户名查询用户对象
     * @param username
     * @return
     */
    User selectByUsername(String username);

    /**
     * 注册用户
     * @param user
     */
    boolean add(User user);

    /**
     * 管理员添加用户
     * @param user
     */
    boolean addUser(User user);

    /**
     * 管理员添加用户时检查用户名，手机号，借书证号是否重名
     * @param username
     * @param number
     * @return
     */
    User checkAddUser(String username,String number);

    /**
     * 批量删除用户
     * @param ids
     */
    void deleteByIds(int[] ids);

    /**
     * 删除
     * @param id
     */
    void delete(int id);

    /**
     * 编辑用户数据
     * @param user
     */
    int update(User user);

    /**
     * 分页查询
     * @param currentPage 当前页码
     * @param pageSize    每页展示条数
     * @return
     */
    PageBean<User> selectByPage(int currentPage, int pageSize);

    /**
     * 分页条件查询
     * @param currentPage
     * @param pageSize
     * @param user
     * @return
     */
    PageBean<User> selectByPageAndCondition(int currentPage,int pageSize,User user);

    /**
     *
     * @param id
     * @return
     */
    User selectById(int id);

    /**
     * 查询用户自己的借书历史记录
     * @param username
     * @return
     */
    List<History> selectHistory(String username);
}
